package cn.bearspark.happening.provider.service.bo;

import cn.bearspark.common.aop.autoparse.host.ParseHost;
import cn.bearspark.common.aop.autoparse.host.ParseEnum;
import cn.bearspark.common.convert.ConvertInfo;
import cn.bearspark.common.enumeration.CommentAbleEnum;
import cn.bearspark.common.enumeration.ConvertTypeEnum;
import cn.bearspark.common.enumeration.VisibilityEnum;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 动态的业务对象
 *
 * @author f
 */
@Data
public class HappeningBO implements Serializable {

    /**
     * 动态的 id
     */
    private Long happeningId;

    /**
     * 动态的发布者的用户 id
     */
    private Long userId;

    /**
     * 动态的标题
     */
    private String title;

    /**
     * 动态的内容
     */
    private String content;

    /**
     * 动态的标签 id
     */
    private Long tagId;

    /**
     * 投票的 id
     */
    private Long voteId;

    /**
     * 预定的直播的 id
     */
    private Long bookLiveId;

    /**
     * 投稿专栏的 id
     */
    private Long articleId;

    /**
     * 投稿视频的 id
     */
    private Long videoId;

    /**
     * 引用的动态的 id
     */
    private Long quotedHappeningId;

    /**
     * 点赞信息
     */
    @ConvertInfo(ConvertTypeEnum.NUMBER)
    private String likeNumInfo;

    /**
     * 评论信息
     */
    @ConvertInfo(ConvertTypeEnum.NUMBER)
    private String commentNumInfo;

    /**
     * 转发数量的信息
     */
    @ConvertInfo(ConvertTypeEnum.NUMBER)
    private String forwardNumInfo;

    /**
     * 可见性
     *
     * @see VisibilityEnum
     */
    private Integer visibility;

    /**
     * 可评论性
     *
     * @see CommentAbleEnum
     */
    private Integer commentAble;

    /**
     * 提前发布
     *
     * @see cn.bearspark.happening.enumeration.happening.AdvanceReleaseEnum
     */
    private Integer advanceRelease;

    /**
     * 图片的 url 的路径的集合
     */
    @ParseHost(ParseEnum.UNPARSE)
    private List<String> imgUrlList;

    /**
     * 动态的发布时间信息
     */
    @ConvertInfo(ConvertTypeEnum.PAST_TIME)
    private String pubTimeInfo;

}
